home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Programming / nsis-2.46-setup.exe / Contrib / Modern UI 2 / Pages / Welcome.nsh < prev   
Encoding:
Text File  |  2008-12-20  |  5.1 KB  |  181 lines

  1. /*
  2.  
  3. NSIS Modern User Interface
  4. Welcome page (implemented using nsDialogs)
  5.  
  6. */
  7.  
  8. ;--------------------------------
  9. ;Page interface settings and variables
  10.  
  11. !macro MUI_WELCOMEPAGE_INTERFACE
  12.  
  13.   !ifndef MUI_WELCOMEPAGE_INTERFACE
  14.     !define MUI_WELCOMEPAGE_INTERFACE
  15.     Var mui.WelcomePage
  16.         
  17.     Var mui.WelcomePage.Image
  18.     Var mui.WelcomePage.Image.Bitmap
  19.     
  20.     Var mui.WelcomePage.Title
  21.     Var mui.WelcomePage.Title.Font
  22.     
  23.     Var mui.WelcomePage.Text    
  24.   !endif
  25.   
  26.   !insertmacro MUI_DEFAULT MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp"  
  27.  
  28. !macroend
  29.  
  30.  
  31. ;--------------------------------
  32. ;Interface initialization
  33.  
  34. !macro MUI_WELCOMEPAGE_GUIINIT
  35.  
  36.   !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEWELCOMEPAGE_GUINIT
  37.     !define MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEWELCOMEPAGE_GUINIT
  38.  
  39.     Function ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePage.GUIInit
  40.       
  41.       InitPluginsDir
  42.       File "/oname=$PLUGINSDIR\modern-wizard.bmp" "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP}"
  43.     
  44.       !ifdef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT
  45.         Call "${MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT}"
  46.       !endif   
  47.     
  48.     FunctionEnd
  49.   
  50.     !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}PAGE_FUNCTION_GUIINIT ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePage.GUIInit
  51.  
  52.   !endif
  53.  
  54. !macroend
  55.  
  56.  
  57. ;--------------------------------
  58. ;Page declaration
  59.  
  60. !macro MUI_PAGEDECLARATION_WELCOME
  61.  
  62.   !insertmacro MUI_SET MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEPAGE ""
  63.   !insertmacro MUI_WELCOMEPAGE_INTERFACE
  64.   
  65.   !insertmacro MUI_WELCOMEPAGE_GUIINIT
  66.  
  67.   !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TITLE "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TITLE)"
  68.   !insertmacro MUI_DEFAULT MUI_WELCOMEPAGE_TEXT "$(MUI_${MUI_PAGE_UNINSTALLER_PREFIX}TEXT_WELCOME_INFO_TEXT)"
  69.   
  70.   !insertmacro MUI_PAGE_FUNCTION_FULLWINDOW
  71.  
  72.   PageEx ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}custom
  73.  
  74.     PageCallbacks ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID}
  75.  
  76.   PageExEnd
  77.  
  78.   !insertmacro MUI_FUNCTION_WELCOMEPAGE ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomePre_${MUI_UNIQUEID} ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}mui.WelcomeLeave_${MUI_UNIQUEID}
  79.  
  80.   !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE
  81.   !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_3LINES
  82.   !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT
  83.  
  84. !macroend
  85.  
  86. !macro MUI_PAGE_WELCOME
  87.  
  88.   !verbose push
  89.   !verbose ${MUI_VERBOSE}
  90.  
  91.   !insertmacro MUI_PAGE_INIT
  92.   !insertmacro MUI_PAGEDECLARATION_WELCOME
  93.  
  94.   !verbose pop
  95.  
  96. !macroend
  97.  
  98. !macro MUI_UNPAGE_WELCOME
  99.  
  100.   !verbose push
  101.   !verbose ${MUI_VERBOSE}
  102.  
  103.   !insertmacro MUI_UNPAGE_INIT
  104.   !insertmacro MUI_PAGEDECLARATION_WELCOME
  105.  
  106.   !verbose pop
  107.  
  108. !macroend
  109.  
  110.  
  111. ;--------------------------------
  112. ;Page functions
  113.  
  114. !macro MUI_FUNCTION_WELCOMEPAGE PRE LEAVE
  115.  
  116.   Function "${PRE}"
  117.   
  118.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE  
  119.  
  120.     ;Create dialog
  121.     nsDialogs::Create 1044
  122.     Pop $mui.WelcomePage
  123.     nsDialogs::SetRTL $(^RTL)
  124.     SetCtlColors $mui.WelcomePage "" "${MUI_BGCOLOR}"    
  125.  
  126.     ;Image control
  127.     ${NSD_CreateBitmap} 0u 0u 109u 193u ""
  128.     Pop $mui.WelcomePage.Image
  129.     !ifndef MUI_${MUI_PAGE_UNINSTALLER_PREFIX}WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
  130.       ${NSD_SetStretchedImage} $mui.WelcomePage.Image $PLUGINSDIR\modern-wizard.bmp $mui.WelcomePage.Image.Bitmap
  131.     !else
  132.       ${NSD_SetImage} $mui.WelcomePage.Image $PLUGINSDIR\modern-wizard.bmp $mui.WelcomePage.Image.Bitmap
  133.     !endif
  134.  
  135.     ;Positiong of controls
  136.  
  137.     ;Title    
  138.     !ifndef MUI_WELCOMEPAGE_TITLE_3LINES
  139.       !define MUI_WELCOMEPAGE_TITLE_HEIGHT 28
  140.     !else
  141.       !define MUI_WELCOMEPAGE_TITLE_HEIGHT 38
  142.     !endif
  143.     
  144.     ;Text
  145.     ;17 = 10 (top margin) + 7 (distance between texts)
  146.     !define /math MUI_WELCOMEPAGE_TEXT_TOP 17 + ${MUI_WELCOMEPAGE_TITLE_HEIGHT}
  147.  
  148.     ;Title
  149.     ${NSD_CreateLabel} 120u 10u 195u ${MUI_WELCOMEPAGE_TITLE_HEIGHT}u "${MUI_WELCOMEPAGE_TITLE}"
  150.     Pop $mui.WelcomePage.Title
  151.     SetCtlColors $mui.WelcomePage.Title "" "${MUI_BGCOLOR}"    
  152.     CreateFont $mui.WelcomePage.Title.Font "$(^Font)" "12" "700"
  153.     SendMessage $mui.WelcomePage.Title ${WM_SETFONT} $mui.WelcomePage.Title.Font 0
  154.  
  155.     ;Welcome text
  156.     ${NSD_CreateLabel} 120u ${MUI_WELCOMEPAGE_TEXT_TOP}u 195u 130u "${MUI_WELCOMEPAGE_TEXT}"
  157.     Pop $mui.WelcomePage.Text
  158.     SetCtlColors $mui.WelcomePage.Text "" "${MUI_BGCOLOR}"
  159.  
  160.     ;Show page
  161.     Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageLoadFullWindow
  162.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
  163.     nsDialogs::Show
  164.     Call ${MUI_PAGE_UNINSTALLER_FUNCPREFIX}muiPageUnloadFullWindow    
  165.  
  166.     ;Delete image from memory
  167.     ${NSD_FreeImage} $mui.WelcomePage.Image.Bitmap
  168.  
  169.     !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TITLE_HEIGHT
  170.     !insertmacro MUI_UNSET MUI_WELCOMEPAGE_TEXT_TOP
  171.     
  172.   FunctionEnd
  173.  
  174.   Function "${LEAVE}"
  175.  
  176.     !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
  177.  
  178.   FunctionEnd
  179.  
  180. !macroend
  181.